【Redis】Redis 有序集合 Zset 操作 ( 简介 您所在的位置:网站首页 redis 修改数据是添加 【Redis】Redis 有序集合 Zset 操作 ( 简介

【Redis】Redis 有序集合 Zset 操作 ( 简介

2023-08-08 03:19| 来源: 网络整理| 查看: 265

文章目录 一、有序集合 Zset二、查询操作1、查询 Zset 所有数据2、查询 Zset 所有数据和评分3、查询指定评分范围的 Zset 数据4、查询指定评分范围的 Zset 数据并从大到小排序5、统计指定评分范围的 Zset 数据个数6、查询指定元素在 Zset 有序集合中的排名 三、增加操作1、向 Redis 中插入 Zset 有序集合 四、删除操作1、删除指定元素 五、修改操作1、修改元素评分

一、有序集合 Zset

有序集合 Zset 与 普通集合 Set 类似 , 都是 没有重复元素的集合 ;

有序集合 Zset 中的 元素排序 , 是 根据 评分 进行排序 , 每个成员 都关联了一个 评分 , 在该 有序集合 中 , 根据 评分 由低到高 进行排序 ;

Zset 中的元素 是 不可重复的 , 但是 元素 关联 的 评分 是可以重复的 , 也就是说 存在 两个不同的元素 关联着 相同的 评分 ;

Zset 中的元素 是 有序 的 , 根据 排序的索引 或者 元素的评分 可以获取 指定范围 的 成员 ; 如 : 获取 中间元素 ;

二、查询操作 1、查询 Zset 所有数据

执行

zrange student 0 -1

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中的所有元素 ;

代码示例 :

127.0.0.1:6379> zadd student 60 Tom 72 Jerry 49 Jack 81 Bill (integer) 4 127.0.0.1:6379> zrange student 0 -1 1) "Jack" 2) "Tom" 3) "Jerry" 4) "Bill" 127.0.0.1:6379>

在这里插入图片描述

2、查询 Zset 所有数据和评分

执行

zrange student 0 -1 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中的所有元素 和 评分 ;

代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores 1) "Jack" 2) "49" 3) "Tom" 4) "60" 5) "Jerry" 6) "72" 7) "Bill" 8) "81" 127.0.0.1:6379>

在这里插入图片描述

3、查询指定评分范围的 Zset 数据

执行

zrangebyscore student 20 70 zrangebyscore student 20 70 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中 20 ~ 70 分 之间的数据 ;

代码示例 :

127.0.0.1:6379> zrangebyscore student 20 70 1) "Jack" 2) "Tom" 127.0.0.1:6379> zrangebyscore student 20 70 withscores 1) "Jack" 2) "49" 3) "Tom" 4) "60" 127.0.0.1:6379>

在这里插入图片描述

4、查询指定评分范围的 Zset 数据并从大到小排序

执行

zrevrangebyscore student 70 20 zrevrangebyscore student 70 20 withscores

命令 , 可以 从 Redis 中查询 student 键对应的 Zset 有序集合中 20 ~ 70 分 之间的数据 , 并且从大到小排序 ;

代码示例 :

127.0.0.1:6379> zrevrangebyscore student 70 20 1) "Tom" 2) "Jack" 127.0.0.1:6379> zrevrangebyscore student 70 20 withscores 1) "Tom" 2) "60" 3) "Jack" 4) "49" 127.0.0.1:6379>

在这里插入图片描述

5、统计指定评分范围的 Zset 数据个数

执行

zcount student 20 70

命令 , 可以 统计 Zset 有序集合中 20 ~ 70 分 之间的数据个数

代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores 1) "Jack" 2) "49" 3) "Jerry" 4) "72" 5) "Bill" 6) "81" 127.0.0.1:6379> zcount student 20 70 (integer) 1 127.0.0.1:6379>

在这里插入图片描述

6、查询指定元素在 Zset 有序集合中的排名

执行

zrank student Jerry

命令 , 可以 查询 Zset 有序集合中 Jack 元素排名 , 从 0 开始排序 ;

代码示例 :

127.0.0.1:6379> zrange student 0 -1 withscores 1) "Jack" 2) "49" 3) "Jerry" 4) "72" 5) "Bill" 6) "81" 127.0.0.1:6379> zrank student Jerry (integer) 1 127.0.0.1:6379> 127.0.0.1:6379> zrank student Bill (integer) 2 127.0.0.1:6379>

在这里插入图片描述

三、增加操作 1、向 Redis 中插入 Zset 有序集合

执行

zadd student 60 Tom 72 Jerry 49 Jack 81 Bill

命令 , 可以 向 Redis 的 student 键 中 存储 Zset 数据 ,

Tom 评分 60 ,Jerry 评分 72 ,Jack 评分 49 ,Bill 评分 81 ;

排序原则是 根据 评分 从小到大 进行排序 ;

如果按照 评分 从低到高 排列为 : Jack < Tom < Jerry < Bill ;

代码示例 :

127.0.0.1:6379> zadd student 60 Tom 72 Jerry 49 Jack 81 Bill (integer) 4 127.0.0.1:6379> zrange student 0 -1 1) "Jack" 2) "Tom" 3) "Jerry" 4) "Bill" 127.0.0.1:6379>

在这里插入图片描述

四、删除操作 1、删除指定元素

执行

zrem student Tom

命令 , 可以 从 Zset 有序集合 中 删除 Tom 元素 ;

代码示例 :

127.0.0.1:6379> zrem student Tom (integer) 1 127.0.0.1:6379> zrange student 0 -1 withscores 1) "Jack" 2) "49" 3) "Jerry" 4) "72" 5) "Bill" 6) "81" 127.0.0.1:6379>

在这里插入图片描述

五、修改操作 1、修改元素评分

执行

zincrby student 20 Tom

命令 , 可以 为 Zset 有序集合 中 的 Tom 元素 的评分 增加 20 ;

代码示例 :

127.0.0.1:6379> zincrby student 20 Tom "80" 127.0.0.1:6379> zrange student 0 -1 withscores 1) "Jack" 2) "49" 3) "Jerry" 4) "72" 5) "Tom" 6) "80" 7) "Bill" 8) "81" 127.0.0.1:6379>

在这里插入图片描述



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有